iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0

今天我們來學習如何自定義(客製化)自己的TabLayout~


字體大小、粗體或粗體

  • 點擊values > strings
    https://ithelp.ithome.com.tw/upload/images/20241003/20168454LSXKvfC2r9.png

  • 裡面撰寫出一個style
    https://ithelp.ithome.com.tw/upload/images/20241003/20168454QIHVveHn3o.png

  1. textSize => 一開始會是默認大小14sp,所以可以使這個芬是去調整自己TabLayout裡文字大小
  2. textStyle => 有租和斜體,斜體為italic
  3. textAllCaps => 用來設置大小寫

(以上是較常使用的)

  • 套用至自己的TabLayout,加入app:tabTextAppearance
    https://ithelp.ithome.com.tw/upload/images/20241003/20168454lCwEeYmOkd.png

  • 變化後,差別能看出來特別大
    https://ithelp.ithome.com.tw/upload/images/20241003/20168454t6SBhuPOsq.png

下滑線

  • 根據自大小同大,加入app:tabIndicatorFullWidth="false"
    https://ithelp.ithome.com.tw/upload/images/20241003/20168454No3x7Et6gw.png

  • 變化,我將更多資訊文字縮減刪除,下滑線也跟著變動
    https://ithelp.ithome.com.tw/upload/images/20241003/20168454WvBcvioC0H.png

  • 同樣如果想將下滑線佔據全格,改成app:tabIndicatorFullWidth="true"
    https://ithelp.ithome.com.tw/upload/images/20241003/201684546KytsufCgb.png

  • 想要改變整個下滑線需要用到drawable,跟先前一樣的步驟去新增
    https://ithelp.ithome.com.tw/upload/images/20241003/20168454MK6oM9MLIh.png

  • 用比較簡單的,之前有特別說明過裡面細項,可以翻翻看(指路)

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:gravity="center"
        android:width="20dp"
        android:height="10dp">
        <shape>
            <corners
                android:radius="3dp">
            </corners>
        </shape>
    </item>
</layer-list>
  • 套用進去使用app:tabIndicator
    https://ithelp.ithome.com.tw/upload/images/20241003/20168454iZb3OKP7VS.png

  • 顏色不能使用drawable,會是無效的,需要用app:tabIndicatorColor
    https://ithelp.ithome.com.tw/upload/images/20241003/20168454ckl3fPJr7A.png

客製化TabLayout樣式

  • 需要再次使用到drawable,且新增兩個,一個是背景(框線)另一個是點擊時占據全部的下滑線
    https://ithelp.ithome.com.tw/upload/images/20241003/20168454goRIeBYW5D.png

  • tab_shape_bg,外框很簡單一個shape和stroke,顏色可改成自己喜歡的

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <!--邊框框線-->
    <stroke
        android:width="1dip"
        android:color="#9263F3" />

</shape>

  • tab_full_indicator,更改顏色與寬高
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:gravity="center"
        android:top="0.5dp"
        android:bottom="0.5dp">

        <shape>
            <size
                android:height="100dp"/>
            <solid
                android:color="#7D53AD"/>
        </shape>
    </item>
</layer-list>
  • 套用, 文字顏色更改用app:tabSelectedTextColor
    https://ithelp.ithome.com.tw/upload/images/20241003/20168454SJuf6iZ0iX.png

執行畫面

(剛開始)
https://ithelp.ithome.com.tw/upload/images/20241003/20168454mNs4v9Gigi.png

(滑動中)
https://ithelp.ithome.com.tw/upload/images/20241003/20168454nnd0keZuyg.png

(滑動後)
https://ithelp.ithome.com.tw/upload/images/20241003/20168454jwzn7P0I5E.png

改變後是不是變得比較好看一點?
多練習變得熟悉後,就能更好做出自己滿意的TabLayout╰(°▽°)╯


上一篇
元件篇-TabLayout Day24
下一篇
Linearlayout線性佈局 Day26
系列文
Android 元件總動員 - 運用與實踐元件指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言